import { Inject, Injectable, Logger } from '@nestjs/common';
import { Cron, CronExpression } from '@nestjs/schedule';
import { ChannelService } from 'src/channel/channel.service';
import { ShortUrlService } from 'src/short-url/short-url.service';

@Injectable()
export class TasksService {
    /* 
    秒     可选参数  , - * /
    分
    小时
    日期
    月份
    星期
    年（一般不写）
    * 代表所哟

    例 ： 7 12 13 10 * ?  就是每月 10 号的 13:12:07 执行这个定时任务。
    0 20-30 * * * *     这个表达式就是从 20 到 30 的每分钟每个第 0 秒都会执行。

    @Interval、@Timeout 创建 3 种定时任务。
    */


    @Inject(ChannelService)
    private channelService:ChannelService

    @Inject(ShortUrlService)
    private shortUrlService:ShortUrlService

    
    // @Cron(CronExpression.EVERY_10_SECONDS)  // 每隔十秒触发一次  等同于 // */10 * * * * *
    // handleCron() {
    //     console.log("定时任务测试");
    // }

    // @Cron(CronExpression.EVERY_10_SECONDS) // 每隔十秒触发一次
    @Cron(CronExpression.EVERY_DAY_AT_4AM) // 凌晨四点更新 
    handleCron() {
        this.channelService.redisSyncData()
    }


    @Cron(CronExpression.EVERY_10_SECONDS)
    getCode(){
        // console.log("创建短链数据");
        // 一般都会在凌晨创建1000个 备用
        // this.shortUrlService.generateCode()
    }


}
